﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OracleClient;
using NUnit.Framework;
using bi4homev3.Entidades;
using bi4homev3.Acceso_a_Datos;


namespace bi4homev3.Pruebas_Unitarias
{
    [TestFixture]
    public class TestDAO
    {
        Usuario testusr = new Usuario();
        Local teslocal = new Local();
        Gastos serv = new Gastos();
        AccesoDatos medio = new AccesoDatos();
        PagoServicio ps = new PagoServicio();
        public int esperado;
        public int actual;

        [Test]
        public void TestValidaUsuario()
        {
            testusr.Clave = "tlpecqmf";
            testusr.Login = "iannyanes";
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            actual = usr.ValidarUsuario1(testusr);
            esperado = 1;
            Assert.AreEqual(esperado, actual);
        }

        [Test]
        public void TestValidaUsuario2()
        {
            testusr.Clave = "12345";
            testusr.Login = "iannyanes";
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            actual = usr.ValidarUsuario1(testusr);
            Assert.AreEqual(-2, actual);
        }

        [Test]
        public void TestValidaUsuario3()
        {
            testusr.Clave = "123456";
            testusr.Login = "iannyane";
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            actual = usr.ValidarUsuario1(testusr);
            Assert.AreEqual(-1, actual);
        }

        [Test]
        public void TestInsertarUsuario()
        {
            int actual = 0;
            testusr.Clave = "123456";
            testusr.Login = "unittest";
            testusr.Apellido = "test";
            testusr.Nombre = "unit";
            testusr.Correo = "unittest@gmail.com";
            testusr.Carga = 2;
            testusr.Ingreso = 20.4;
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            usr.InsertarUsuario1(testusr);
            actual = usr.ValidarUsuario1(testusr);
            Assert.AreEqual(1, actual);
        }

        [Test]
        public void Testcifrado1()
        {

            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            string prueba1 = usr.cifrado1("123456");
            string prueba2 = usr.cifrado1("123456");
            Assert.AreEqual(prueba1, prueba2);
        }

        [Test]
        public void Testcifrado2()
        {
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            UsuarioDAO usr = fabricaoracle.getUsuarioDAO();
            string prueba1 = usr.cifrado1("567899");
            string prueba2 = usr.cifrado1("123456");
            Assert.AreNotEqual(prueba1, prueba2);
        }

        [Test]
        public void TestLocal()
        {
            int lo = 0;
            teslocal.NombreLocal = "PorFin";
            teslocal.Calle = "El porvenir";
            teslocal.Sector = "El progreso";
            teslocal.Referencia = "Frente al Milagro";
            teslocal.Lugar = 2;
            teslocal.Usuario = "iannyanes";
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            LocalDAO loc = fabricaoracle.getLocalDAO();
            loc.insertarLocal(teslocal);
            lo = medio.ValidarExiteLocal(teslocal);
            Assert.AreEqual(1, lo);
        }

        [Test]
        public void TestNuevoServicio()
        {
            int ser = 0;
            serv.Nombre = "Prueba6";
            serv.Descripcion = "PruebaUnitaria3";
            serv.Usuario = "iannyanes";
            FabricaDAO fabricaoracle = FabricaDAO.getFabricaDAO(1);
            ServicioDAO con = fabricaoracle.getServicioDAO();
            con.insertarServico(serv);
            ser = medio.ValidarExiteServicio(serv);

            Assert.AreEqual(1, ser);
        }

        
        


        
    }
}
